import BN from "bn.js";
import { Address } from "web3x-es/address";
import { EventLog, TransactionReceipt } from "web3x-es/formatters";
import { Contract, ContractOptions, TxCall, TxSend, EventSubscriptionFactory } from "web3x-es/contract";
import { Eth } from "web3x-es/eth";
import abi from "./EstateRegistryAbi";
export type OwnershipTransferredEvent = {
    previousOwner: Address;
    newOwner: Address;
};
export type TransferEvent = {
    _from: Address;
    _to: Address;
    _tokenId: string;
};
export type ApprovalEvent = {
    _owner: Address;
    _approved: Address;
    _tokenId: string;
};
export type ApprovalForAllEvent = {
    _owner: Address;
    _operator: Address;
    _approved: boolean;
};
export type CreateEstateEvent = {
    _owner: Address;
    _estateId: string;
    _data: string;
};
export type AddLandEvent = {
    _estateId: string;
    _landId: string;
};
export type RemoveLandEvent = {
    _estateId: string;
    _landId: string;
    _destinatary: Address;
};
export type UpdateEvent = {
    _assetId: string;
    _holder: Address;
    _operator: Address;
    _data: string;
};
export type UpdateOperatorEvent = {
    _estateId: string;
    _operator: Address;
};
export type UpdateManagerEvent = {
    _owner: Address;
    _operator: Address;
    _caller: Address;
    _approved: boolean;
};
export type SetLANDRegistryEvent = {
    _registry: Address;
};
export type MigratedEvent = {
    contractName: string;
    migrationId: string;
};
export interface OwnershipTransferredEventLog extends EventLog<OwnershipTransferredEvent, "OwnershipTransferred"> {
}
export interface TransferEventLog extends EventLog<TransferEvent, "Transfer"> {
}
export interface ApprovalEventLog extends EventLog<ApprovalEvent, "Approval"> {
}
export interface ApprovalForAllEventLog extends EventLog<ApprovalForAllEvent, "ApprovalForAll"> {
}
export interface CreateEstateEventLog extends EventLog<CreateEstateEvent, "CreateEstate"> {
}
export interface AddLandEventLog extends EventLog<AddLandEvent, "AddLand"> {
}
export interface RemoveLandEventLog extends EventLog<RemoveLandEvent, "RemoveLand"> {
}
export interface UpdateEventLog extends EventLog<UpdateEvent, "Update"> {
}
export interface UpdateOperatorEventLog extends EventLog<UpdateOperatorEvent, "UpdateOperator"> {
}
export interface UpdateManagerEventLog extends EventLog<UpdateManagerEvent, "UpdateManager"> {
}
export interface SetLANDRegistryEventLog extends EventLog<SetLANDRegistryEvent, "SetLANDRegistry"> {
}
export interface MigratedEventLog extends EventLog<MigratedEvent, "Migrated"> {
}
interface EstateRegistryEvents {
    OwnershipTransferred: EventSubscriptionFactory<OwnershipTransferredEventLog>;
    Transfer: EventSubscriptionFactory<TransferEventLog>;
    Approval: EventSubscriptionFactory<ApprovalEventLog>;
    ApprovalForAll: EventSubscriptionFactory<ApprovalForAllEventLog>;
    CreateEstate: EventSubscriptionFactory<CreateEstateEventLog>;
    AddLand: EventSubscriptionFactory<AddLandEventLog>;
    RemoveLand: EventSubscriptionFactory<RemoveLandEventLog>;
    Update: EventSubscriptionFactory<UpdateEventLog>;
    UpdateOperator: EventSubscriptionFactory<UpdateOperatorEventLog>;
    UpdateManager: EventSubscriptionFactory<UpdateManagerEventLog>;
    SetLANDRegistry: EventSubscriptionFactory<SetLANDRegistryEventLog>;
    Migrated: EventSubscriptionFactory<MigratedEventLog>;
}
interface EstateRegistryEventLogs {
    OwnershipTransferred: OwnershipTransferredEventLog;
    Transfer: TransferEventLog;
    Approval: ApprovalEventLog;
    ApprovalForAll: ApprovalForAllEventLog;
    CreateEstate: CreateEstateEventLog;
    AddLand: AddLandEventLog;
    RemoveLand: RemoveLandEventLog;
    Update: UpdateEventLog;
    UpdateOperator: UpdateOperatorEventLog;
    UpdateManager: UpdateManagerEventLog;
    SetLANDRegistry: SetLANDRegistryEventLog;
    Migrated: MigratedEventLog;
}
interface EstateRegistryTxEventLogs {
    OwnershipTransferred: OwnershipTransferredEventLog[];
    Transfer: TransferEventLog[];
    Approval: ApprovalEventLog[];
    ApprovalForAll: ApprovalForAllEventLog[];
    CreateEstate: CreateEstateEventLog[];
    AddLand: AddLandEventLog[];
    RemoveLand: RemoveLandEventLog[];
    Update: UpdateEventLog[];
    UpdateOperator: UpdateOperatorEventLog[];
    UpdateManager: UpdateManagerEventLog[];
    SetLANDRegistry: SetLANDRegistryEventLog[];
    Migrated: MigratedEventLog[];
}
export interface EstateRegistryTransactionReceipt extends TransactionReceipt<EstateRegistryTxEventLogs> {
}
interface EstateRegistryMethods {
    supportsInterface(_interfaceId: string): TxCall<boolean>;
    name(): TxCall<string>;
    initialize(_name: string, _symbol: string, _registry: Address): TxSend<EstateRegistryTransactionReceipt>;
    updateManager(a0: Address, a1: Address): TxCall<boolean>;
    getApproved(_tokenId: number | string | BN): TxCall<Address>;
    approve(_to: Address, _tokenId: number | string | BN): TxSend<EstateRegistryTransactionReceipt>;
    landIdEstate(a0: number | string | BN): TxCall<string>;
    onERC721Received(_operator: Address, _from: Address, _tokenId: number | string | BN, _data: string): TxSend<EstateRegistryTransactionReceipt>;
    getFingerprint(estateId: number | string | BN): TxCall<string>;
    totalSupply(): TxCall<string>;
    setLandUpdateOperator(estateId: number | string | BN, landId: number | string | BN, operator: Address): TxSend<EstateRegistryTransactionReceipt>;
    transferFrom(_from: Address, _to: Address, _tokenId: number | string | BN): TxSend<EstateRegistryTransactionReceipt>;
    updateLandData(estateId: number | string | BN, landId: number | string | BN, data: string): TxSend<EstateRegistryTransactionReceipt>;
    tokenOfOwnerByIndex(_owner: Address, _index: number | string | BN): TxCall<string>;
    estateLandIds(a0: number | string | BN, a1: number | string | BN): TxCall<string>;
    setManyLandUpdateOperator(_estateId: number | string | BN, _landIds: (number | string | BN)[], _operator: Address): TxSend<EstateRegistryTransactionReceipt>;
    transferManyLands(estateId: number | string | BN, landIds: (number | string | BN)[], destinatary: Address): TxSend<EstateRegistryTransactionReceipt>;
    updateManyLandData(estateId: number | string | BN, landIds: (number | string | BN)[], data: string): TxSend<EstateRegistryTransactionReceipt>;
    safeTransferFrom(_from: Address, _to: Address, _tokenId: number | string | BN): TxSend<EstateRegistryTransactionReceipt>;
    initialize(_name: string, _symbol: string): TxSend<EstateRegistryTransactionReceipt>;
    exists(_tokenId: number | string | BN): TxCall<boolean>;
    tokenByIndex(_index: number | string | BN): TxCall<string>;
    setLANDRegistry(_registry: Address): TxSend<EstateRegistryTransactionReceipt>;
    updateMetadata(estateId: number | string | BN, metadata: string): TxSend<EstateRegistryTransactionReceipt>;
    ping(): TxSend<EstateRegistryTransactionReceipt>;
    ownerOf(_tokenId: number | string | BN): TxCall<Address>;
    isUpdateAuthorized(operator: Address, estateId: number | string | BN): TxCall<boolean>;
    balanceOf(_owner: Address): TxCall<string>;
    setManyUpdateOperator(_estateIds: (number | string | BN)[], _operator: Address): TxSend<EstateRegistryTransactionReceipt>;
    safeTransferManyFrom(from: Address, to: Address, estateIds: (number | string | BN)[]): TxSend<EstateRegistryTransactionReceipt>;
    registry(): TxCall<Address>;
    initialize(): TxSend<EstateRegistryTransactionReceipt>;
    owner(): TxCall<Address>;
    verifyFingerprint(estateId: number | string | BN, fingerprint: string): TxCall<boolean>;
    symbol(): TxCall<string>;
    updateOperator(a0: number | string | BN): TxCall<Address>;
    estateLandIndex(a0: number | string | BN, a1: number | string | BN): TxCall<string>;
    setApprovalForAll(_to: Address, _approved: boolean): TxSend<EstateRegistryTransactionReceipt>;
    transferLand(estateId: number | string | BN, landId: number | string | BN, destinatary: Address): TxSend<EstateRegistryTransactionReceipt>;
    getMetadata(estateId: number | string | BN): TxCall<string>;
    setUpdateOperator(estateId: number | string | BN, operator: Address): TxSend<EstateRegistryTransactionReceipt>;
    safeTransferFrom(_from: Address, _to: Address, _tokenId: number | string | BN, _data: string): TxSend<EstateRegistryTransactionReceipt>;
    getLandEstateId(landId: number | string | BN): TxCall<string>;
    isMigrated(contractName: string, migrationId: string): TxCall<boolean>;
    initialize(_sender: Address): TxSend<EstateRegistryTransactionReceipt>;
    tokenURI(_tokenId: number | string | BN): TxCall<string>;
    mint(to: Address, metadata: string): TxSend<EstateRegistryTransactionReceipt>;
    safeTransferManyFrom(from: Address, to: Address, estateIds: (number | string | BN)[], data: string): TxSend<EstateRegistryTransactionReceipt>;
    isApprovedForAll(_owner: Address, _operator: Address): TxCall<boolean>;
    setUpdateManager(_owner: Address, _operator: Address, _approved: boolean): TxSend<EstateRegistryTransactionReceipt>;
    transferOwnership(newOwner: Address): TxSend<EstateRegistryTransactionReceipt>;
    getEstateSize(estateId: number | string | BN): TxCall<string>;
}
export interface EstateRegistryDefinition {
    methods: EstateRegistryMethods;
    events: EstateRegistryEvents;
    eventLogs: EstateRegistryEventLogs;
}
export class EstateRegistry extends Contract<EstateRegistryDefinition> {
    constructor(eth: Eth, address?: Address, options?: ContractOptions) {
        super(eth, abi, address, options);
    }
    deploy(): TxSend<EstateRegistryTransactionReceipt> {
        return super.deployBytecode("0x608060405234801561001057600080fd5b5061472b806100206000396000f3006080604052600436106102715763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461027657806306fdde03146102ac578063077f224a1461033657806307ecec3e146103da578063081812fc14610401578063095ea7b3146104355780630a354fce14610459578063150b7a0214610483578063159a64751461050f57806318160ddd146105275780631d11016a1461053c57806323b872dd1461056357806328b34ef61461058d5780632f745c59146105ed5780633970bfd3146106115780633dcbeb001461062c5780634080704914610691578063426a0af3146106c157806342842e0e146107595780634cd88b76146107835780634f558e791461081a5780634f6ccce714610832578063535a920c1461084a57806353c8388e1461086b5780635c36b1861461088f5780636352211e146108a457806365937ab9146108bc57806370a08231146108e057806372554ff51461090157806373b913fa146109615780637b103999146109cc5780638129fc1c146109e15780638da5cb5b146109f65780638f9f4b6314610a0b57806395d89b4114610a695780639d40b85014610a7e5780639f813b1b14610a96578063a22cb46514610ab1578063a506e5dc14610ad7578063a574cea414610afe578063b0b02c6014610b16578063b88d4fde14610b3a578063bb96913214610ba9578063c0bac1a814610bc1578063c4d66de814610c58578063c87b56dd14610c79578063d0def52114610c91578063d93eeb5c14610cbe578063e985e9c514610d67578063ef1db76214610d8e578063f2fde38b14610dba578063f4a4344814610ddb575b600080fd5b34801561028257600080fd5b50610298600160e060020a031960043516610df3565b604080519115158252519081900360200190f35b3480156102b857600080fd5b506102c1610e04565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102fb5781810151838201526020016102e3565b50505050905090810190601f1680156103285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103d894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050509235600160a060020a03169350610e9b92505050565b005b3480156103e657600080fd5b50610298600160a060020a03600435811690602435166112a2565b34801561040d57600080fd5b506104196004356112c2565b60408051600160a060020a039092168252519081900360200190f35b34801561044157600080fd5b506103d8600160a060020a03600435166024356112dd565b34801561046557600080fd5b50610471600435611386565b60408051918252519081900360200190f35b34801561048f57600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526104f294600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506113989650505050505050565b60408051600160e060020a03199092168252519081900360200190f35b34801561051b57600080fd5b50610471600435611467565b34801561053357600080fd5b506104716115e1565b34801561054857600080fd5b506103d8600435602435600160a060020a03604435166115e7565b34801561056f57600080fd5b506103d8600160a060020a036004358116906024351660443561175f565b34801561059957600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526103d894823594602480359536959460649492019190819084018382808284375094975061178b9650505050505050565b3480156105f957600080fd5b50610471600160a060020a0360043516602435611796565b34801561061d57600080fd5b506104716004356024356117e3565b34801561063857600080fd5b506040805160206004602480358281013584810280870186019097528086526103d89684359636966044959194909101929182918501908490808284375094975050509235600160a060020a0316935061181392505050565b34801561069d57600080fd5b506103d8600480359060248035908101910135600160a060020a03604435166119ff565b3480156106cd57600080fd5b506040805160206004602480358281013584810280870186019097528086526103d89684359636966044959194909101929182918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611aa19650505050505050565b34801561076557600080fd5b506103d8600160a060020a0360043581169060243516604435611adf565b34801561078f57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103d894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611b5f9650505050505050565b34801561082657600080fd5b50610298600435611ed6565b34801561083e57600080fd5b50610471600435611ef3565b34801561085657600080fd5b506103d8600160a060020a0360043516611f28565b34801561087757600080fd5b506103d86004803590602480359081019101356120a3565b34801561089b57600080fd5b506103d86121a8565b3480156108b057600080fd5b50610419600435612228565b3480156108c857600080fd5b50610298600160a060020a036004351660243561224c565b3480156108ec57600080fd5b50610471600160a060020a036004351661225f565b34801561090d57600080fd5b50604080516020600480358082013583810280860185019096528085526103d89536959394602494938501929182918501908490808284375094975050509235600160a060020a0316935061229292505050565b34801561096d57600080fd5b5060408051602060046044358181013583810280860185019096528085526103d8958335600160a060020a0390811696602480359092169636969560649592949301928291850190849080828437509497506122c79650505050505050565b3480156109d857600080fd5b506104196122e3565b3480156109ed57600080fd5b506103d86122f2565b348015610a0257600080fd5b5061041961263f565b348015610a1757600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261029895833595369560449491939091019190819084018382808284375094975061264e9650505050505050565b348015610a7557600080fd5b506102c161266a565b348015610a8a57600080fd5b506104196004356126cb565b348015610aa257600080fd5b506104716004356024356126e6565b348015610abd57600080fd5b506103d8600160a060020a03600435166024351515612703565b348015610ae357600080fd5b506103d8600435602435600160a060020a0360443516612787565b348015610b0a57600080fd5b506102c16004356127f0565b348015610b2257600080fd5b506103d8600435600160a060020a0360243516612891565b348015610b4657600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526103d894600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506129769650505050505050565b348015610bb557600080fd5b506104716004356129f6565b348015610bcd57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750612a089650505050505050565b348015610c6457600080fd5b506103d8600160a060020a0360043516612acf565b348015610c8557600080fd5b506102c1600435612e3b565b348015610c9d57600080fd5b5061047160048035600160a060020a03169060248035908101910135612eb9565b348015610cca57600080fd5b5060408051602060046044358181013583810280860185019096528085526103d8958335600160a060020a03908116966024803590921696369695606495929493019282918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750612f869650505050505050565b348015610d7357600080fd5b50610298600160a060020a0360043581169060243516612fbd565b348015610d9a57600080fd5b506103d8600160a060020a03600435811690602435166044351515612feb565b348015610dc657600080fd5b506103d8600160a060020a0360043516613173565b348015610de757600080fd5b506104716004356131fb565b6000610dfe8261320d565b92915050565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e905780601f10610e6557610100808354040283529160200191610e90565b820191906000526020600020905b815481529060010190602001808311610e7357829003601f168201915b505050505090505b90565b6040805190810160405280600e81526020017f45737461746552656769737472790000000000000000000000000000000000008152506040805190810160405280600581526020017f302e302e32000000000000000000000000000000000000000000000000000000815250610f34826040805190810160405280600b81526020016000805160206146c08339815191528152506132ae565b610f3e82826132ae565b600160a060020a0383161515610fc4576040805160e560020a62461bcd02815260206004820152602660248201527f5468652072656769737472792073686f756c6420626520612076616c6964206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610fce8585611b5f565b610fd733612acf565b600d8054600160a060020a031916600160a060020a0385161790556040805181815283519181019190915282516000805160206146a08339815191529184918491908190602080830191606084019187019080838360005b8381101561104757818101518382015260200161102f565b50505050905090810190601f1680156110745780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156110a757818101518382015260200161108f565b50505050905090810190601f1680156110d45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083106111175780518252601f1990920191602091820191016110f8565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106111735780518252601f199092019160209182019101611154565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b602083106111e55780518252601f1990920191602091820191016111c6565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087526000805160206146c083398151915293870193845291519095945092508291908083835b6020831061125e5780518252601f19909201916020918201910161123f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff19169315159390931790925550505050505050565b601360209081526000928352604080842090915290825290205460ff1681565b600090815260026020526040902054600160a060020a031690565b60006112e882612228565b9050600160a060020a03838116908216141561130357600080fd5b33600160a060020a038216148061131f575061131f8133612fbd565b151561132a57600080fd5b6000828152600260205260408082208054600160a060020a031916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600f6020526000908152604090205481565b600d546000908190600160a060020a03163314611425576040805160e560020a62461bcd02815260206004820152602960248201527f4f6e6c79207468652072656769737472792063616e206d616b6520746869732060448201527f6f7065726174696f6e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61142e83613337565b905061143a8185613342565b7f150b7a020000000000000000000000000000000000000000000000000000000091505b50949350505050565b60008060008360405160200180807f65737461746549640000000000000000000000000000000000000000000000008152506008018281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106114e35780518252601f1990920191602091820191016114c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a8152600e909252928120549297509195509093505050505b818110156115da576000848152600e6020526040902080548290811061154857fe5b9060005260206000200154604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106115a15780518252601f199092019160209182019101611582565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209590951894505050600101611526565b5050919050565b60095490565b8260006115f382612228565b90506115ff33836135b6565b8061162d5750600160a060020a038116600090815260136020908152604080832033845290915290205460ff165b1515611671576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614660833981519152604482015290519081900360640190fd5b6000848152600f602052604090205485146116d2576040805160e560020a62461bcd0281526020600482015260226024820152600080516020614680833981519152604482015260f060020a61746502606482015290519081900360840190fd5b600d54604080517fb0b02c6000000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a0386811660248301529151919092169163b0b02c6091604480830192600092919082900301818387803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b505050505050505050565b60008181526012602052604090208054600160a060020a031916905561178683838361360d565b505050565b6117868383836136fa565b60006117a18361225f565b82106117ac57600080fd5b600160a060020a03831660009081526007602052604090208054839081106117d057fe5b9060005260206000200154905092915050565b600e602052816000526040600020818154811015156117fe57fe5b90600052602060002001600091509150505481565b600083600061182182612228565b905061182d33836135b6565b8061185b5750600160a060020a038116600090815260136020908152604080832033845290915290205460ff165b151561189f576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614660833981519152604482015290519081900360640190fd5b600092505b84518310156119375785600f600087868151811015156118c057fe5b9060200190602002015181526020019081526020016000205414151561192c576040805160e560020a62461bcd0281526020600482015260226024820152600080516020614680833981519152604482015260f060020a61746502606482015290519081900360840190fd5b6001909201916118a4565b600d54604080517f72554ff5000000000000000000000000000000000000000000000000000000008152600160a060020a038781166024830152600482019283528851604483015288519316926372554ff592899289928291606401906020808701910280838360005b838110156119b95781810151838201526020016119a1565b505050509050019350505050600060405180830381600087803b1580156119df57600080fd5b505af11580156119f3573d6000803e3d6000fd5b50505050505050505050565b60008085611a0d33826135b6565b1515611a60576040805160e560020a62461bcd02815260206004820152602360248201526000805160206146e0833981519152604482015260e960020a623332b902606482015290519081900360840190fd5b849250600091505b82821015611a9857611a8d87878785818110611a8057fe5b9050602002013586613947565b600190910190611a68565b50505050505050565b815160005b81811015611ad857611ad0858583815181101515611ac057fe5b90602001906020020151856136fa565b600101611aa6565b5050505050565b80611aea33826135b6565b1515611b3d576040805160e560020a62461bcd02815260206004820152602360248201526000805160206146e0833981519152604482015260e960020a623332b902606482015290519081900360840190fd5b611b598484846020604051908101604052806000815250612976565b50505050565b6040805190810160405280600b81526020017f455243373231546f6b656e0000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e30000000000000000000000000000000000000000000000000000000815250611bf8826040805190810160405280600b81526020016000805160206146c08339815191528152506132ae565b611c0282826132ae565b8351611c159060059060208701906145a7565b508251611c299060069060208601906145a7565b506000805160206146a08339815191528282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611c7c578181015183820152602001611c64565b50505050905090810190601f168015611ca95780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611cdc578181015183820152602001611cc4565b50505050905090810190601f168015611d095780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b60208310611d4c5780518252601f199092019160209182019101611d2d565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310611da85780518252601f199092019160209182019101611d89565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b60208310611e1a5780518252601f199092019160209182019101611dfb565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087526000805160206146c083398151915293870193845291519095945092508291908083835b60208310611e935780518252601f199092019160209182019101611e74565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff191693151593909317909255505050505050565b600090815260016020526040902054600160a060020a0316151590565b6000611efd6115e1565b8210611f0857600080fd5b6009805483908110611f1657fe5b90600052602060002001549050919050565b600c54600160a060020a03163314611f3f57600080fd5b611f5181600160a060020a0316613be5565b1515611fcd576040805160e560020a62461bcd02815260206004820152602e60248201527f546865204c414e4420726567697374727920616464726573732073686f756c6460448201527f206265206120636f6e7472616374000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515612053576040805160e560020a62461bcd02815260206004820152602960248201527f546865204c414e4420726567697374727920616464726573732073686f756c6460448201527f2062652076616c69640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600d8054600160a060020a031916600160a060020a0383811691909117918290556040519116907f2e88792af6f2248ed486ffffc86edf9bc197596990f7b406d5f867a1dd930ba590600090a250565b826120ae3382613bed565b1515612104576040805160e560020a62461bcd02815260206004820152601160248201527f556e617574686f72697a65642075736572000000000000000000000000000000604482015290519081900360640190fd5b61213e8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843750613c61945050505050565b3361214885612228565b600160a060020a0316857f47c705b9219229ad762fca605f08fb024a3415d0ae78af5d319820c72e51041486866040518080602001828103825284848281815260200192508082843760405192018290039550909350505050a450505050565b600d60009054906101000a9004600160a060020a0316600160a060020a0316635c36b1866040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561221457600080fd5b505af1158015611b59573d6000803e3d6000fd5b600081815260016020526040812054600160a060020a0316801515610dfe57600080fd5b60006122588383613bed565b9392505050565b6000600160a060020a038216151561227657600080fd5b50600160a060020a031660009081526003602052604090205490565b60005b8251811015611786576122bf83828151811015156122af57fe5b9060200190602002015183612891565b600101612295565b6117868383836020604051908101604052806000815250612f86565b600d54600160a060020a031681565b6040805190810160405280600a81526020017f4d696772617461626c65000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e322e3100000000000000000000000000000000000000000000000000000081525061238b826040805190810160405280600b81526020016000805160206146c08339815191528152506132ae565b61239582826132ae565b6000805160206146a08339815191528282604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156123e75781810151838201526020016123cf565b50505050905090810190601f1680156124145780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561244757818101518382015260200161242f565b50505050905090810190601f1680156124745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083106124b75780518252601f199092019160209182019101612498565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b602083106125135780518252601f1990920191602091820191016124f4565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b602083106125855780518252601f199092019160209182019101612566565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087526000805160206146c083398151915293870193845291519095945092508291908083835b602083106125fe5780518252601f1990920191602091820191016125df565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff19169315159390931790925550505050565b600c54600160a060020a031681565b600061265982613c80565b61266284611467565b149392505050565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e905780601f10610e6557610100808354040283529160200191610e90565b601260205260009081526040902054600160a060020a031681565b601060209081526000928352604080842090915290825290205481565b600160a060020a03821633141561271957600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261279233826135b6565b15156127e5576040805160e560020a62461bcd02815260206004820152602360248201526000805160206146e0833981519152604482015260e960020a623332b902606482015290519081900360840190fd5b611b59848484613947565b60008181526011602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156128855780601f1061285a57610100808354040283529160200191612885565b820191906000526020600020905b81548152906001019060200180831161286857829003601f168201915b50505050509050919050565b81600061289d82612228565b90506128a933836135b6565b806128d75750600160a060020a038116600090815260136020908152604080832033845290915290205460ff165b151561291b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614660833981519152604482015290519081900360640190fd5b6000848152601260205260408082208054600160a060020a031916600160a060020a0387169081179091559051909186917f9d9dd80a56a16f715df6eb40b771e24ff8cbea6eed9de28473ce0f28fe5602a99190a350505050565b8161298133826135b6565b15156129d4576040805160e560020a62461bcd02815260206004820152602360248201526000805160206146e0833981519152604482015260e960020a623332b902606482015290519081900360840190fd5b6129df85858561175f565b6129eb85858585613d18565b1515611ad857600080fd5b6000908152600f602052604090205490565b600080836040518082805190602001908083835b60208310612a3b5780518252601f199092019160209182019101612a1c565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310612a975780518252601f199092019160209182019101612a78565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff1695945050505050565b6040805190810160405280600781526020017f4f776e61626c65000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e30000000000000000000000000000000000000000000000000000000815250612b68826040805190810160405280600b81526020016000805160206146c08339815191528152506132ae565b612b7282826132ae565b600c8054600160a060020a031916600160a060020a0385161790556040805181815283519181019190915282516000805160206146a08339815191529184918491908190602080830191606084019187019080838360005b83811015612be2578181015183820152602001612bca565b50505050905090810190601f168015612c0f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612c42578181015183820152602001612c2a565b50505050905090810190601f168015612c6f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b60208310612cb25780518252601f199092019160209182019101612c93565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310612d0e5780518252601f199092019160209182019101612cef565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420805460ff19169515159590951790945550508351600192600092869290918291908401908083835b60208310612d805780518252601f199092019160209182019101612d61565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087526000805160206146c083398151915293870193845291519095945092508291908083835b60208310612df95780518252601f199092019160209182019101612dda565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220805460ff1916931515939093179092555050505050565b6060612e4682611ed6565b1515612e5157600080fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156128855780601f1061285a57610100808354040283529160200191612885565b600d54600090600160a060020a03163314612f44576040805160e560020a62461bcd02815260206004820152602960248201527f4f6e6c79207468652072656769737472792063616e206d616b6520746869732060448201527f6f7065726174696f6e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612f7e8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843750613e80945050505050565b949350505050565b60005b8251811015611ad857612fb585858584815181101515612fa557fe5b9060200190602002015185612976565b600101612f89565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600160a060020a038216331415613072576040805160e560020a62461bcd02815260206004820152602b60248201527f546865206f70657261746f722073686f756c6420626520646966666572656e7460448201527f2066726f6d206f776e6572000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383163314806130ac5750600160a060020a038316600090815260046020908152604080832033845290915290205460ff165b1515613102576040805160e560020a62461bcd02815260206004820152601160248201527f556e617574686f72697a65642075736572000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03838116600081815260136020908152604080832094871680845294825291829020805460ff191686151590811790915582519081529151339493927fd79fbfe1644c022b9150727d871532bfcc3e27ffee86fc596a062770ac97b04292908290030190a4505050565b600c54600160a060020a0316331461318a57600080fd5b600160a060020a038116151561319f57600080fd5b600c54604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600c8054600160a060020a031916600160a060020a0392909216919091179055565b6000908152600e602052604090205490565b600061321882613fd1565b806132605750604080517f6765744d657461646174612875696e743235362900000000000000000000000081529051908190036014019020600160e060020a03198381169116145b80610dfe5750604080517f76657269667946696e6765727072696e742875696e743235362c62797465732981529051908190036020019020600160e060020a03198381169116149050919050565b6132b88282612a08565b15613333576040805160e560020a62461bcd02815260206004820152603260248201527f52657175657374656420746172676574206d6967726174696f6e20494420686160448201527f7320616c7265616479206265656e2072756e0000000000000000000000000000606482015290519081900360840190fd5b5050565b6000610dfe82613c80565b61334b82611ed6565b15156133a1576040805160e560020a62461bcd02815260206004820152601a60248201527f546865204573746174652069642073686f756c64206578697374000000000000604482015290519081900360640190fd5b6000818152600f60205260409020541561342b576040805160e560020a62461bcd02815260206004820152602660248201527f546865204c414e4420697320616c7265616479206f776e656420627920616e2060448201527f4573746174650000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600d54604080517f6352211e0000000000000000000000000000000000000000000000000000000081526004810184905290513092600160a060020a031691636352211e9160248083019260209291908290030181600087803b15801561349157600080fd5b505af11580156134a5573d6000803e3d6000fd5b505050506040513d60208110156134bb57600080fd5b5051600160a060020a031614613541576040805160e560020a62461bcd02815260206004820152602960248201527f5468652045737461746552656769737472792063616e6e6f74206d616e61676560448201527f20746865204c414e440000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000828152600e60209081526040808320805460018101825581855283852001859055848452600f835281842086905585845254601083528184208585529092528083209190915551829184917fff0e52667d53255667dc777a00af81038a4646367b0d73d8ee8540ca5b0c9a2e9190a35050565b6000806135c283612228565b905080600160a060020a031684600160a060020a031614806135fd575083600160a060020a03166135f2846112c2565b600160a060020a0316145b80612f7e5750612f7e8185612fbd565b8061361833826135b6565b151561366b576040805160e560020a62461bcd02815260206004820152602360248201526000805160206146e0833981519152604482015260e960020a623332b902606482015290519081900360840190fd5b600160a060020a038416151561368057600080fd5b600160a060020a038316151561369557600080fd5b61369f8483614046565b6136a984836140a8565b6136b383836141e1565b8183600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b600080848461370a33838361422a565b151561374e576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614660833981519152604482015290519081900360640190fd5b6000868152600f602052604090205487146137af576040805160e560020a62461bcd0281526020600482015260226024820152600080516020614680833981519152604482015260f060020a61746502606482015290519081900360840190fd5b600d54604080517f7efd9112000000000000000000000000000000000000000000000000000000008152600481018990528151600160a060020a0390931692637efd9112926024808401939192918290030181600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b505050506040513d604081101561383d57600080fd5b508051602091820151600d546040517fd4dd159400000000000000000000000000000000000000000000000000000000815260048101848152602482018490526060604483019081528b5160648401528b51959a50939850600160a060020a039092169463d4dd1594948a948a948d949093919260849091019185019080838360005b838110156138d85781810151838201526020016138c0565b50505050905090810190601f1680156139055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561392657600080fd5b505af115801561393a573d6000803e3d6000fd5b5050505050505050505050565b600080808080600160a060020a03861615156139d3576040805160e560020a62461bcd02815260206004820152602d60248201527f596f752063616e206e6f74207472616e73666572204c414e4420746f20616e2060448201527f656d707479206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b6000888152600e60209081526040808320601083528184208b85529283905292205491965094501515613a4c576040805160e560020a62461bcd0281526020600482015260226024820152600080516020614680833981519152604482015260f060020a61746502606482015290519081900360840190fd5b8454613a5f90600163ffffffff6142e216565b600088815260208690526040902054909350613a8290600163ffffffff6142e216565b91508483815481101515613a9257fe5b6000918252602090912001549050613ab182600163ffffffff6142f416565b60008281526020869052604090205584548190869084908110613ad057fe5b6000918252602090912001558454859084908110613aea57fe5b600091825260208220015582613b008682614625565b50600087815260208581526040808320839055600f909152808220829055600d5481517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038a81166024830152604482018c9052925192909116926342842e0e9260648084019382900301818387803b158015613b8b57600080fd5b505af1158015613b9f573d6000803e3d6000fd5b5050505085600160a060020a031687897f7932eb5ab0d4d4d172776074ee15d13d708465ff5476902ed15a4965434fcab160405160405180910390a45050505050505050565b6000903b1190565b600080613bf983612228565b9050613c0584846135b6565b80613c295750600083815260126020526040902054600160a060020a038581169116145b80612f7e5750600160a060020a0380821660009081526013602090815260408083209388168352929052205460ff1691505092915050565b60008281526011602090815260409091208251611786928401906145a7565b600080805b8351811015613d1157613c9f81600863ffffffff61430116565b8482815181101515613cad57fe5b60209101015160029190910a7f0100000000000000000000000000000000000000000000000000000000000000918290049091027fff0000000000000000000000000000000000000000000000000000000000000016049190911790600101613c85565b5092915050565b600080613d2d85600160a060020a0316613be5565b1515613d3c576001915061145e565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b83811015613dcf578181015183820152602001613db7565b50505050905090810190601f168015613dfc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015613e1e57600080fd5b505af1158015613e32573d6000803e3d6000fd5b505050506040513d6020811015613e4857600080fd5b5051600160e060020a0319167f150b7a0200000000000000000000000000000000000000000000000000000000149695505050505050565b600080600160a060020a0384161515613f08576040805160e560020a62461bcd028152602060048201526024808201527f596f752063616e206e6f74206d696e7420746f20616e20656d7074792061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613f1061432a565b9050613f1c848261434a565b613f268184613c61565b8084600160a060020a03167fd66691e9db811aef0bc0900328bd314b23f1f2285d5cb6d4baa4d959b3645a3c856040518080602001828103825283818151815260200191508051906020019080838360005b83811015613f90578181015183820152602001613f78565b50505050905090810190601f168015613fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a39392505050565b6000613fdc82614399565b806140105750600160e060020a031982167f780e9d6300000000000000000000000000000000000000000000000000000000145b80610dfe575050600160e060020a0319167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b81600160a060020a031661405982612228565b600160a060020a03161461406c57600080fd5b600081815260026020526040902054600160a060020a0316156133335760009081526002602052604090208054600160a060020a031916905550565b60008060006140b7858561440e565b600084815260086020908152604080832054600160a060020a03891684526007909252909120549093506140f290600163ffffffff6142e216565b600160a060020a03861660009081526007602052604090208054919350908390811061411a57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a031681526020019081526020016000208481548110151561415a57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040812080548490811061418c57fe5b6000918252602080832090910192909255600160a060020a03871681526007909152604090208054906141c3906000198301614625565b50600093845260086020526040808520859055908452909220555050565b60006141ed8383614497565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b60006142368484613bed565b80612f7e5750600d54604080517f9d40b850000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03808816931691639d40b8509160248083019260209291908290030181600087803b1580156142a457600080fd5b505af11580156142b8573d6000803e3d6000fd5b505050506040513d60208110156142ce57600080fd5b5051600160a060020a031614949350505050565b6000828211156142ee57fe5b50900390565b81810182811015610dfe57fe5b600082151561431257506000610dfe565b5081810281838281151561432257fe5b0414610dfe57fe5b600061434560016143396115e1565b9063ffffffff6142f416565b905090565b614354828261451a565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b60006143a482614575565b806143d85750600160e060020a031982167f80ac58cd00000000000000000000000000000000000000000000000000000000145b80610dfe575050600160e060020a0319167f4f558e79000000000000000000000000000000000000000000000000000000001490565b81600160a060020a031661442182612228565b600160a060020a03161461443457600080fd5b600160a060020a03821660009081526003602052604090205461445e90600163ffffffff6142e216565b600160a060020a039092166000908152600360209081526040808320949094559181526001909152208054600160a060020a0319169055565b600081815260016020526040902054600160a060020a0316156144b957600080fd5b60008181526001602081815260408084208054600160a060020a031916600160a060020a03881690811790915584526003909152909120546144fa916142f4565b600160a060020a0390921660009081526003602052604090209190915550565b600160a060020a038216151561452f57600080fd5b61453982826141e1565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600160e060020a031981167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106145e857805160ff1916838001178555614615565b82800160010185558215614615579182015b828111156146155782518255916020019190600101906145fa565b50614621929150614645565b5090565b815481835581811115611786576000838152602090206117869181019083015b610e9891905b80821115614621576000815560010161464b5600756e617574686f72697a65642075736572000000000000000000000000000000546865204c414e44206973206e6f742070617274206f66207468652045737461dd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea3696e697469616c697a65640000000000000000000000000000000000000000004f6e6c79206f776e6572206f72206f70657261746f722063616e207472616e73a165627a7a7230582045f34176ffa9292b346d1694a7734989d9d47a833be247a8467a2eb115a9104a0029") as any;
    }
}
export var EstateRegistryAbi = abi;
